package com.inmerweb.app.dao;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.NoResultException;
import javax.persistence.Query;

import org.springframework.util.Assert;

import com.inmerweb.app.commons.dao.GenericJpaDao;
import com.inmerweb.app.domain.InmersionEntity;
import com.inmerweb.app.domain.UserEntity;


/**
 * DAO implementacion para las operaciones de inmersiones
 * 
 * @author Daniel Pascual Sanchez
 *
 */
public class InmersionJpaDao extends GenericJpaDao<InmersionEntity, Long> implements InmersionDao {

	public InmersionJpaDao() {
		super(InmersionEntity.class);
	}

	public List<InmersionEntity> getUserInmersionsByUserName(String userName) {
		Assert.notNull(userName);
		List<InmersionEntity> result = new ArrayList<InmersionEntity>();
		Query query = getEntityManager().createQuery(
				"select inmer from " + getPersistentClass().getSimpleName()
						+ " inmer where inmer.user_id = :user_id").setParameter(
				"user_id", userName);

		try {
			result = (List<InmersionEntity>)query.getResultList();
			getEntityManager().close();

		} catch (NoResultException e) {
			// no lanzar excepcion
			// TODO log4j
		}

		return result;
	}
}
